/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: syyyy
 * Date: 2025-10-21
 * Time: 21:45
 */
public class MatrixMultiplication {

    public static int[][] multiply(int[][] X, int[][] Y) {
        int n = X.length;
        // 初始化结果矩阵（n阶）
        int[][] Z = new int[n][n];

        // 计算Z[i][j] = X的第i行 · Y的第j列（点积）
        for (int i = 0; i < n; i++) {       // 行索引（X的行）
            for (int j = 0; j < n; j++) {   // 列索引（Y的列）
                for (int k = 0; k < n; k++) { // 累加索引（行与列的对应位置）
                    Z[i][j] += X[i][k] * Y[k][j];
                }
            }
        }
        return Z;
    }

    // 打印矩阵（辅助函数）
    public static void printMatrix(int[][] matrix) {
        int n = matrix.length;
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < n; j++) {
                System.out.print(matrix[i][j] + "\t");
            }
            System.out.println();
        }
    }

    public static void main(String[] args) {
        // 测试用例：2阶矩阵相乘
        int[][] X = {{1, 2}, {3, 4}};
        int[][] Y = {{5, 6}, {7, 8}};

        int[][] Z = multiply(X, Y);

        System.out.println("矩阵X：");
        printMatrix(X);
        System.out.println("矩阵Y：");
        printMatrix(Y);
        System.out.println("乘积Z = X * Y：");
        printMatrix(Z);
        // 输出结果：
        // 19	22
        // 43	50
    }
}